Resolving an App-Relative URL without a Page Object Reference

Comments 0

Share to social media

If you’ve worked with ASP.NET before then you’ve almost certainly seen an application-relative URL like ~/SomeFolder/SomePage.aspx.  The tilde at the beginning is a stand in for the application path, and it can easily be resolved using the Page object’s ResolveUrl method:

string url = Page.ResolveUrl(“~/SomeFolder/SomePage.aspx”);

There are times, however, when you don’t have a page object available and you need to resolve an application relative URL.  Assuming you have an HttpContext object available, the following method will accomplish just that:

public static string ResolveAppRelativeUrl(string url)
{
     return url.Replace(“~”, System.Web.HttpContext.Current.Request.ApplicationPath);
}

It just replaces the tilde with the application path, which is essentially all the ResolveUrl method does.

Load comments

About the author

Damon Armstrong

See Profile

Damon Armstrong is a consultant with SystemwarePS in Dallas, Texas. He is also a blogger and author of Pro ASP.NET 2.0 Website Programming and SharePoint 2013 Essentials for Developers. He specializes in the Microsoft stack with a focus on web technologies like MVC, ASP.NET, JavaScript, and SharePoint. When not staying up all night coding, he can be found watching a bunch of kids, studying Biblical topics, playing golf, or recovering from staying up all night coding.